#ifndef MAP
#define MAP

#include "../games/cls_dialog.h" // Classe de gestion du dialogue
#include "../games/cls_scenario.h" // Classe de gestion du scenario
#include "../multimedia/cls_mouse.h" // Classe de gestion du curseur de la souris

/* ----------------------------------------------------
			Classe
  ----------------------------------------------------- */
class cls_Map
{

private:

    cls_Mouse * clsMouse_Encours;

    SDL_Surface * p_sdlS_Imagefond;
    SDL_Rect sdlR_PositionMap_XY;

    int n_CST_MapWidth;
    int n_CST_MapHeight;
    int n_CST_MapVelocity;
    int n_CST_MapDelay;


    // Gestion de l'interval de mise à jour
    int n_NextUpdateTime;


public:

    int getMapDelai() const;

    /* ---------------------------- */


    SDL_Rect sdlR_PositionMap_Decalage;

    // Vitesse de déplacement sur les axes X et Y
    int n_xVelocity;
    int n_yVelocity;

    /* ---------------------------- */

	cls_Map();
	~cls_Map();

    /* ---------------------------- */

    bool fct_MoveLeftStart();
    bool fct_MoveRightStart();
    bool fct_MoveStop();
    bool fct_IsMovePossible(int n_DirectionMovement);

    void fct_InitMap(cls_Mouse* clsMouse_Encours, cls_Scenario* clsScenario);

    // Gestion des évènements pour la map
    void fct_HandleInput(SDL_Event event);

    // Dessine l'image de fond à l'écran
    void fct_DrawMap(SDL_Surface * p_sdlS_Ecran, int n_CurrentTime);

    // Libere les surfaces
    void fct_FreeSurface();

};


#endif
